Voyager-NG 2.92BETA
===================

Welcome to the Voyager-NG V2.92BETA.

This is a beta release. Handle with care, use on your own
risk. Will erase HD, burn CPU etc.pp. 

Due to the major rewrites involved in the network part,
some things which worked in earlier versions don't work yet:

- ftp and gopher support
- SSL via proxy
- news/mailto/telnet links

This is in the works. There are also some layout issues
which are not addressed yet. You will see some strange
effects when hitting <SCRIPT> or <APPLET> tags which
you can safely ignore. There are also a lot of servers
which don't really support HTTP/1.1 although they
pretend to do so; workaround support for this isn't
completed yet (mostly old apache 1.2 betas)

Please subscribe to the Voyager-Mailing list if you want
to participate in the testing; please mail enforcer hits
etc. to <voyager-bugs@vapor.com> instead of the list.

Olli

--- cut here: ---

[changes before 2.70 removed from this file]

V2.70
-----
- reduced default margins to 4/4 pixel
- bottom/center alignment of images was hosed
  in conjunction with vspace
- fixed a problem with partially specified tags
  during incrementall update causing mess
  (most notably causing colors to not work)
- fixed client pull refresh in non-frames
- removed an internal memory leak
- fixed a funky problem with the last blit
  image cache in double buffer mode
- fixed another problem in local path handling
  for file:/// URLs

V2.71
-----
- reduced HTML view per-line memory usage
- fixed the "refresh goes mad with scroller update" bug

V2.72
-----
- fixed client pull timeout being totally wrong
- grayscale JPEGs were displayed messed up in
  colormapped mode
- shift-click download didn't work for imagelinks
- fixed a problem with cliprect setting on incremental
  layout when scrolling while layout was happeneing
- image data transfer caused excess document update
  events to be generated, thus wasting CPU and overally
  slowing down V
- fixed overwriting of prefs/url history on early
  quit

V2.73
-----
- fixed a obscure display messup bug which was caused
  when layout was aborted due to lack of data inside a table.
  Caused bogus scroller positions and bogus in-view object
  placement
- now doesn't internally relayout pages when changed parts
  are suspected to be off screen. Major speed increase
  with larger pages.

V2.74
-----
- URL parser killed #fragments on URI remerge
- auto submitting of form now works for every form which
  has only a single string gadget and one submit button
- image loaded via file:/// which failed to load never
  were transformed into "broken images"
- fixed an ultra lame bug in table alignment. If
  percentual widths were specified for table cells,
  and this percentual width was smaller than the minimum
  pixel size, it assumed the minimum pixel width as
  the percentual width. Ouch. However, this proofed
  that V deals nicely with percentual widths summing up
  to more than 100% in a row :)
- table cell background rect objects were always rendered
  one pixel to high and width, thus overwriting cellspacing
- image engine was allocating bitmaps one row too large,
  thus wasting chipmem
- scaled images in double buffer mode on AGA interleaved
  screens were blitted with the unscaled sizes, causing
  screen trashing
- another lame bug: if a frameset was shown and the page
  was just resized vertically, the frameset was not
  recalculated
- fixed excess refresh when adding autoscrollers to a frameset
- V could have send an empty "Referer:" header under certain
  circumstances which in turn confused buggy http servers
- <TH ALIGN=LEFT> now works as expected

V2.75
-----
- hopefully <sigh> fixed <sigh> all the <sigh> troubles <sigh>
  related to <sigh> <object align=middle> <sigh>

V2.76
-----
- form auto submit on pressing enter actually triggered the
  <blush> form reset event, instead of form submit
- corrected some spelling mistakes
- <FONT> now properly stacks
- fixed refreshing of single frames with client pull
- fixed Z order of table background rectangles. Also
  created excess background rectangles thus slowing down
  display and scroll.

V2.77
-----
- <U>/</U> text underlining now works (discouraged)
- final </font> used to set the pen color to a bogus value
- led class cleanup method was never called, thus leaking
  chip memory on exit and messing up pen colors on a screen 
  switch
- fixed led class background rendering for hicolor/truecolor 
  screens
- the transfer anim icon can now be hidden (prefs or
  popup menu)
- prefs will now trigger a window close/open only if really
  required
- fixed status line refresh problems
- fixed news:. Also possible to use news://newshost/ adressing
  now.

V2.78
-----
- table background rect ordering finally fixed. I hope so.
  Please!
- added in-memory cache. Enabled settings. Has a lowmemhandler
  to automatically free memory in low-mem situations.
- added image cache

V2.79
-----
- improved background pattern heavily with a smart exponential
  blit routine. No additional memory usage, but major speed increase
  esspecially when blitting tiny images (for example, 1 line
  height backfill patterns) during display refresh and scrolling
- the HTTP module didn't inform the SSL module if it was running
  with as225/inet API, thus SSL didn't work
- added a note in the prefs section suggesting to not turn on
  image cache on AGA/ECS systems
- added support for marking of text and copying to clipboard
- ultra lame bug: specifying a broken #RGB value in color
  definitions could cause memory trashing

V2.80
-----
- fixed lame bug with background colors introduced in 2.79

V2.81
-----
- fixed ftp:// dir list path assembly
- fixed a few typos in the catalog
- fixed "reload" not properly propagating to frames
  (applied to both the "reload" button and to client pull
  refresh in frames)
- fixed handling of <caption>
- fixed problems with <TEXTAREA> size underflow
- added a heuristic to deal with <TABLE WIDTH=%> occuring
  inside a freewidth table in a more MSIE/NS alike manner
- table layout could cause cells which contained fixed
  width tables being smaller than their fixed width,
  thus causing overlapping
- fixed a really stoneage bug that with large images (larger
  than the screen) which were centered, those were offseted
  to the left out of the screen

V2.82
-----
- fixed a newly introduced problem with cells containing
  tables with width=100%
- included new registration utility revision
- added new revision of the CacheBrowser

V2.83
-----
- fixed a longstanding lame bug that clicking on a link
  caused stacktrash to be sent as Referer:. Liked to cause
  crashes, too.

V2.84
-----
- fixed <P> not resetting previously set paragraph
  alignment rules if </P> was missing
- added newwindow flag support for internal IPC
  (to be used by the new cachebrowser)
- fixed crash on backward marking of text

V2.85
-----
- added a heuristic to better deal with duplicate erraneous
  quotes in tags
- form submitting failed when the base URL already had
  a argument part (notably with ISINDEX converted forms)
- fixed a longstanding bug in the HTML parser which would
  mistake <BORDERCOLORDARK> for <BORDER> if the former
  was specified before the real <BORDER> argument. Quite lame.
- text marking no longer goes across frame boundaries
- fixed form posting in frames

V2.86
-----
- empty "" values in tokens caused a messup
- last argument in a token wasn't found if it hadn't
  had parameters
- <font face> caused font info to be pushed on the font
  stack, thus causing a font stack overflow quickly

V2.87
-----
- if a autoscroll frame needed scrollers due to inner size,
  but the frame was too small to carry a scrollgroup, a
  neverending refresh loops was triggered
- attempting to scale a gif anim where the first frame
  was smaller than the GIF "screen" size could cause memory
  trash to be expanded. Now properly expands the first frame
  to the requested size.
- transfer icon now sends V to "about:" on a press again
- now handles mailto:address?subject=blah correctly
- now shows <A TITLE=x> texts in link info bubbles
- "Add to bookmarks" in link popup menu now uses
  the anchor title as a label for the bookmark

V2.88
-----
- URL parser choked on URLs with a argument and no (real)
  path (visible on hotbot)
- viewing of plain text caused a major crash
- will now parse color specs of the form "#<hex>bullshit"
  as <hex> only. Fixes infamous #ffffbo yellow-to-pink on usatoday
- image loading turned off caused bogus stuff
  instead of ALT text to be shown as an image replacement
- "Load images" from the popup menu now works
- included a new revision of the Cachebrowser

V2.89
-----
- major speedup during page layout (esspecially obvious on larger
  pages) and handling
- now specifies MUIA_Application_UsedClasses correctly
- fixed multi page printing problems with certain printer drivers
- fixed a problem with string form elements being layouted
  too narrow thus causing MUI layout size complaints
- fixed a major bug in handling form posts and meta refresh updates
  causing access to freed memory with all kind of nasty side effects
  ranging from forms not working up to utter crashes

V2.90
-----
- added ScreenToFront and ScreenToBack ARexx commands
- fixed POSTing of form data
- images are no longer cashed till crash on ECS/AGA systems
- no longer constantly tries to open javascript library for
  every created object (oops), thus slowing down general
  operation beyond belief

V2.91
-----
- fixed and heavily improved POST handling. POST URLs are
  now properly listed in history, can be reloaded and multi
  stage POST forms with the same URL don't stupidly reload
  the first instance from cache
- URL loader no longer nukes on path/arg combinations longer
  than 512 chars
- further improved setup speed of link objects
- redesigned memory handling of HTML docview. Instead of
  fragmenting the general all-purpose pool with myriards of
  small allocs/frees, temporary data is now allocated from the
  per document pool, which is freed with a general DeletePool()
  on a document switch
- fixed <TEXTAREA>
- selecting a form cycle gadget no longer starts dragging
- send mail/post news window now work again
- fixed <SELECT> handling. No longer limited to 128 chars.
  Now offers <MULTIPLE> with list representation. Selects with
  more than 5 entries are now automatically presented as a 
  popup list.

V2.91a
------
- now supports FRAMEBORDER correctly
- fixed lame deadlock bug introduced in 2.91

V2.91b
------
- single item <SELECT> could fail due to incorrect size calculation
- improved setup/rendering speed of table border objects
- <FONT> attributes are now reset for ever <TD> and resetted
  after a table. This should fix many suspected "table bugs".
- removed excess TextLength() from calculating anchor label widths,
  thus speeding up pages with lots of links
- fixed problems with "end of transfer" going unnoticed
- added "Disable Proxies?" menu item
- added "Spoof as Mozilla?" menu item

V2.91c
------
- form <select> poplist class didn't properly inherit the current font
- plain text was accidentally rendered in <size-1> font, instead of the
  fixed font
- links are now in the window cycle chain and can be reached with tab
  cycling. Also, string elements in forms now have AdvanceOnCR
  and do no longer autosubmit as long as there is a submit button
  in the form
- fixed a few broken cycle chains in prefs
- improved keyboard control for htmlview. Current mapping:
  LEFT/RIGHT/UP/DOWN (also 4/8/6/2 on numpad) as expected
  SHIFT-UP/DOWN (also 9/3 on numpad) page up/down
  CTRL-UP/DOWN (also 1/7 on numpad) top/bottom
  SHIFT-LEFT/RIGHT linestart/end
  CTRL-LEFT/RIGHT linestart/end
  ALT-LEFT/RIGHT page back/forward
  NUMKEY-- page back
  NUMKEY-+ page forward
  SPACE - page down
  BACKSPACE - up
- key controls now only affect the "active" frame (the one
  last loaded or last clicked into)

V2.91d
------
- file:/// errors now show a proper DOS error string
- <TR ALIGN> is now properly inherited
- FORM POSTing via Proxies was totally broken
- no longer pukes when submitting forms which already had
  ? in their ACTION URLs
- added support for Proxy Authorization
- now converts &; entities inside <FORM ACTION> for compatibility
  with some broken cgi-bins <sigh>
- added support for SSL Proxy tunneling
- fixed a problem with <INPUT TYPE=CHECKBOX> objects causing MUI layout
  complaints due to minimum size violation
- plaintext was still rendered using <SIZE-1> font, although
  calculated with fixed font.

V2.91e
------
- fixed catalog string messup introduced in 2.91d
- source view window now uses textinput (in non-edit mode)
- Voyager SSL now does certificate verification. Unknown certificates
  are recognized, warned and optionally stored/accepted (note that
  V will store and accept single server certs if it can't find the
  issuing authority. This matches NS/MSIE behavior)

V2.91f
------
- redesigned prefs window to avoid double frames thus saving display space
- added new prefs page to view, enable and disable SSL certs
- fixed a problem with framesets not properly recognizing "Document done"
  state due to a cut off method
- added load/save prefs menu commands
- added load/save bookmarks menu commands
- spoof and noproxy menu states are now properly saved

V2.91g
------
- load images now has 4 options: all/imaps only/none and backgrounds.
- added "ignore frames" option
- added flush document/flush image cache options
- cleaned up menu shortcuts
- fixed shift-click
- fixed loading of individual images (also inside frames)
- <TABLE> no longer causes a left/right document frame flush
- prefs loader no longer nukes on hosed configuration files
- (hopefully) fixed a fancy problem with tables being wordwrapped
  pointlessly due to rounding problems in weight distribution

V2.91h
------
- fixed loading of single images
- URL parser failed to merge URLs which had a host, no path but
  args (happened on some Cookie-Emulation redirect servers).
  This should fix a lot of "forms related" bugs
- checkbox form elements are now properly scaled to font size,
  and have a proper background
- URL arguments weren't passed properly to the server when not
  using a proxy

V2.91i
------
- maximum number of network connections is now properly honored
- fixed a problem with URL gets not being properly started up
  (that's the "images are sometimes(tm) not all loaded" one)
  under certain race conditions
- fixed two potential low-mem crash problems in the image decoder
- "Stop" now properly aborts main document get as well as images
  and subframes
- fixed <FORM> ACTION assembly
- checkbox sizes were still miscalculated

V2.91j
------
- Certificate info now shows serial number and fingerprint
- random number generation for SSL is now feed properly with
  input event data to provide proper seeds
- improved SSLeay efficiency
- color names are now understood without spaces, too,
  for Netscape compatibility (i.e. "saddle brown" == "saddlebrown")
- totally rewrote management of file downloads. Now has a single
  "download" window which contains all active downloads. No longer
  downloads to a ram buffer. Mime "Ask" handling now works properly,
  as does the handling of unknown media types generally.
- tabs in <PRE> were calculated with the wrong font width
- prefs are now saved on exit again

V2.91k
------
- fixed deadlock when fetching documents from the memory cache
- <textarea> didn't properly set minimum line width, thus
  causing messes inside tables
- fixed a few remaining string class instances in the prefs window

V2.91l
------
- Referer: referencing to POST result pages was hosed
- no longer encodes "-" when encoding form data; legal, but broke
  some lame cgis
- Cookies weren't properly overwriting; this introduced a lot of
  fancy bugs including www.microsoft.com not working at all
- fixed problems with <P> occuring after <TD>
- ALIGN=MIDDLE is now thoroughly accepted as an alias to ALIGN=CENTER
- <caption> still caused messups most of the time
- fixed popup width calculation for <OPTION>

V2.91m
------
- fixed a problem with PNG 24bit images with transparency viewing on
  non truecolor screens causing enforcer hits
- fixed handling of grayscale PNGs on non-colormapped screens

V2.92a
------
(internal only)

V2.92b
------
- internal image decoder now supports XBM bitmaps
- image decoder now handles redirected <IMG> pointers
- fixed a sync problem in the image class; if a image load was "too fast"
  and the image wasn't scaled, the image wasn't properly drawn on the
  final GS_DONE. Liked to show up with broken images and (now) XBMs
- completely rewrote networking code from scratch, using a single
  process multiplexing socket connections and a few sub threads
  to do DNS lookups with the standard resolver lib. Uses much less
  resources than before, esspecially in SSL mode. 
- Now supports HTTP/1.1 persistant connections and chunking, with 
  automagic fallback to HTTP/1.0 for old servers. Open connections
  are marked with magenta LEDs.

V2.92c
------
- starting V with a invalid URL caused enforcer orgy
- now stores it's PROGDIR: name in ENV(ARC):Vapor/Voyager_LASTUSEDDIR
  for Update/Setup and other purposes

V2.92d
------
- fixed a serious bug in the HTTP/1.1 chunked handling; if a object
  contained multiple chunks, only the first two were read properly
  and major memory trashing occured
- fixed a unhandled out-of-memory condition in the PNG decoder

V2.92e
------
- clicking on "Stop" caused the main HTML object to be freed
  and major crashes afterwards
- fixed a race condition in the network stream handler which could
  cause an object to be not terminated properly
- fixed a bug in the applet loader

V2.92f
------
- fixed a lame duplicate ReleaseSemaphore() bug when switching
  screens (or changing MUI prefs), causing a exec semaphore-corrupt 
  alert and consecutive crash

V2.92g
------
- fixed problems with some strange servers which send a pre HTTP/1.0
  response in reply to a HTTP/1.1 request
- SSL now works again
- fixed a sync problem in HTTP/1.1 fallback; if several 1.1 requests
  where opened to a host which doesn't do 1.1, only the first failed
  request was retried as 1.0. This happened when a host which
  supports 1.1 has <IMG> links to a 1.0-only server (hotmail
  was a prime example)
- POST didn't work at all (broken URL was sent)
- fixed problem with "100 Continue" response causing protocol
  desync
- fixed download to file
- <INPUT TYPE=image> objects weren't put in the cycle chain

V2.92h
------
- "SSL now works again" is no longer a lie (requires updated
  VSSL plugin version 4.1)
- SSL now properly utilizes the session cache to avoid
  renegotiating of algorithm and certificates for every
  new link
- height for <applet height> wasn't taken into layout calculations
- fixed problems with merging absolute URLs (mailto: for example,
  merged on a normal http:// URL)
- fixed problem with <TITLE> forwarding race

V2.92i
------
- POST requests are now always executed as HTTP/1.0
  in order to avoid problems with several servers not
  accepting message bodies correctly in a HTTP/1.1
  transaction
- fixed another race conditions between network handler/layouer
  causing trash to appear on the display sometimes

V2.92j
------
- fixed a problem with lame sites which violate RFC-1866 by
  not specifying a NAME tag in <INPUT TYPE=image>.
  This fixes (e.g.) www.teleauskunft.de

V2.92k
------
- empty textfields are now also included in form data
- added "about:dnscache" to get an overview of the current
  DNS cache list for debugging purposes
- added "about:memcache" to get an overview of in memory
  objects for debugging purposes
- fixed problems with saving of objects to file after 
  they have already been loaded into memory
- fixed the network handler to no longer push methods
  to removed objects (would cause crashes when using framed
  pages)
- HTTP authentication works again

V2.92l
------
- fixed startup enforcer hits caused by accidentally
  referencing scmffp/stdio under certain circumstances
- fixed a problem with parked HTTP/1.1 connections
  being closed exactly when a new request was sent
  (reason for frequent "Link broke" errors)
- fixed a problem with SCROLLING=AUTO not working
  properly
- net loader would crash if a data block >4k was initially
  pushed (shouldn't have happened during normal network
  operation)

V2.92m
------
- when downloading to file, the file wasn't closed until
  the netstream itself was closed
- fixed startup race which could lead to nukes when
  a network request was issued before the network server
  process was actually up
- DNS cache now stores all returned IPs for a host,
  not only the first one
- fixed DNS cache preinit to not have a link field with
  a <stacktrash> next pointer thus causing startup crashes
  and/or hit flood
- fixed a race conditition with the HTTP loader handing
  a pointer to <uninitialized buffer memory> to it's clients
  when a object was returned with a valid Content-Length:
  and before reading any data
- will now retry a HTTP/1.1 request as 1.0 if some obscure
  HTTP protocol error arose with actually receiving a proper
  error message from the server (fixes servers which are so
  amazed by HTTP/1.1 requests that they close the link
  without further notice)

2.92n
-----
- fixed another buffer memory race condition when
  loading data from disk files
- fixed a very old bug in the HTML parser which would
  not terminate properly at the end of data unter certain
  circumstances and instead return loads of trash. 
  The bug has been there since V0.001, but just liked to 
  show up recently with the new network handling
- now converts entities in FORM ACTION URLs again to match
  NS/MSIE behavior and fix a few totally and utterly lame
  servers
- changed HTML parser to return unknown entities as
  cleartext instead of blanks
- fixed handling of TARGET=_self
- fixed resetting of status line after a network error

2.92o
-----
- fixed loading of individual images
- fixed scroll bar appearance problems for SCROLLING=AUTO
  pages containing images with unspecified widths
- no longer crashes when hitting images with a width >1024
  (www.dejanews.com)

2.92p
-----
- fixed a lame bug with scrollbar enabling after
  SCROLLING=AUTO auto magic
- fixed TABs in plain HTML text
- stoneage bug: V wouldn't properly locate frame names
  if they were hidden in a nested frameset, thus
  screwing the TARGET of links
- frames without SRC would always show up as "loading"
  in the status line

2.92q
-----
- now always sends relativeURIs even in HTTP/1.1 requests.
  This is allowed, but somewhat discouraged by RFC1945,
  however, it should fix a lot of the HTTP/1.1 related
  problems
- finally and for all fixed the "V quits if clock
  is set back even with a keyfile" annoyance
- "Home" will now take you back to the actual configured
  home page, instead of the root page of the current window
- no longer interprets <TAGS> within <TEXTAREA> (well, that's
  a lie. It actually scans for </TEXTAREA>)

2.92r
-----
- now interprets all chars 128-160 as WSP for compatibility with
  certain funny iso-8859-1 interpretations
- fixed a really lame bug causing the network thread to
  always send requests with version "HTTP/1.%s"...
- added several more hooks for creating JS objects "on the fly"

2.92s
-----
- added status line gadget showing a key to symbolize SSL and
  data source (internal, file, http/1.0-1.1, ftp) status
- now writes to mem cache again
- now creates cache directory if not found (instead of blatantly
  writing flatly on SYS:)
- now correctly interprets "Pragma: No-Cache" headers when
  fetching objects
- fixed handling of <TT> (had some funny interaction with <PRE>)
- fixed minwidth calculation of listview style <SELECT>s
- skipping of unknown entities in parsing raw HTML didn't work
  (worked when converting entities in <TAG> args, though)
- fixed handling of &nbsp;

2.92t
-----
[Note: Delete all the Cache/CIX_xx directories as they may
 contain broken cache objects]
- fixed listview <SELECT> widths. Really this time. Not kidding.
- file:/// no longer allows access to pathes containing PIPE:
- fixed reload operation
- now interprets &entities; in <IMG SRC> as well <sigh>
- V would store bullshit in the document length part of the
  cacheheader if the document was retrieved without Content-Length:,
  thus nuking on reload
- no longer caches error/redirect responses
- now also caches HTTP/1.1 chunked objects
